For a variety of reasons, a packet en route to its destination often passes through one or more networking device(s). For example, for security purposes, a packet may pass through a firewall, a router, or an Intrusion Prevention System (IPS). Once a networking device has received the packet it may perform a series of operations and actions on the packet before determining whether the packet should be allowed to be transmitted or dropped. For example, a firewall that has received a packet may perform a series of operations on the packet to determine whether the packet is valid and safe before transmitting it out the egress (output) interface.
With conventional approaches, the operations performed on the packet cannot be efficiently determined. For example, one traditional approach to analyzing the operations performed on the packet is by examining associated logs (syslogs) and debugs. The limitation of current logs and debugs is that they do not apply to a single packet, but instead to an entire feature or protocol. Because of this, trying to determine the operations performed on a packet by examining associated logs and/or debugs requires correlation of the logs/debugs back to the specific packet. This is very time consuming and inefficient.
This inefficiency causes problems for different network related operations. In one example, this inefficiency causes problems for the security operations group. The security operations group is responsible for ensuring a network device meets a set of network security guidelines. In order to accomplish this, security operations analyze both network traffic that is destined for the network device and network traffic that passes through the network device.
With conventional approaches, the network device's configuration is analyzed to determine the security posture. Logs (syslog) are then scrutinized to validate that the network device is denying traffic that is denied in the configuration, and permitting traffic that is permitted in the configuration. However, this approach is inefficient and painstakingly slow.
In another example, the network operations group is negatively affected by the lack of an efficient way to determine the operations performed on a packet as well. Network operations group verifies network connectivity between network users and resources, e.g., servers. In essence, the network operations group analyzes connectivity issues and determines why a user is unable to access a resource. With conventional approaches, a member of the network operations group frequently has to spend a significant amount of time to determine the operations performed on packets in order to troubleshoot the connectivity issue.
Specifically, a member of the network operations group may first analyze all the operations taken on the packet. Subsequently, an attempt is made to determine which operation is causing the connectivity to fail. If a cause is determined, the network operations agent may need to match the operation with an associated entry in the configuration to enable, disable, or modify the behavior. However, if the configuration is large, this approach becomes difficult, time-consuming, and without detailed knowledge of the network device one cannot effectively perform the troubleshooting.